import { IPSBICubeObject } from './ipsbicube-object';
import { IPSDEField } from '../dataentity/defield/ipsdefield';

/**
 *
 * @export
 * @interface IPSBICubeMeasure
 */
export interface IPSBICubeMeasure extends IPSBICubeObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 指标公式
   * @type {string}
   */
  measureFormula: string;

  /**
   * 指标标记
   * @type {string}
   */
  measureTag: string;

  /**
   * 指标标记2
   * @type {string}
   */
  measureTag2: string;

  /**
   * 指标类型
   * @description 值模式 [多维分析指标类别] {COMMON：常规、 CALCULATED：动态计算 }
   * @type {( string | 'COMMON' | 'CALCULATED')}
   */
  measureType: string | 'COMMON' | 'CALCULATED';

  /**
   * 实体属性
   *
   * @type {IPSDEField}
   */
  getPSDEField(): IPSDEField | null;

  /**
   * 实体属性
   *
   * @type {IPSDEField}
   */
  get psDEField(): IPSDEField | null;

  /**
   * 实体属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getPSDEFieldMust(): IPSDEField;

  /**
   * 值格式化
   * @type {string}
   */
  valueFormat: string;

  /**
   * 隐藏指标项
   * @type {boolean}
   * @default false
   */
  hiddenItem: boolean;
}
